1. Field of the Invention
The present disclosure relates generally to packet network devices such as switches and routers, and more particularly to methods for diminishing the loss of data in a packet network device due to network topology changes.
2. Description of Related Art
Large communication networks are typically comprised of interrelated local area networks or LANs which are in turn comprised of some number of packet network devices, such as routers and/or switches, and end user devices such as servers or some other form of computational device. FIG. 1 illustrates a communications network 10 that includes three LANs, LAN-0, LAN-1 and LAN-2. At least one packet network device in each of the LANs of FIG. 1 is connected over a communication link to at least one other ROUTER in the LAN in which they are located, and at least one packet network device in each LAN can be connected over a communication link to at least one device in each of the other two LANs. Each packet network device, which can be a switch a router or both, generally operates to receive packets of information, process the packets and forward the packets to their correct destination. Typically each LAN is managed as a separate network entity from other LANs, so that each LAN can have different applications running, can have different levels of security and can have some number of routers that can be configured and managed by a network administrator separately from routers included in other LANs.
As opposed to the LANs illustrated and described with reference to FIG. 1, a virtual local area network or VLAN relates to routers that are grouped logically as opposed to physically. Typically, a VLAN is comprised of multiple routers at least some of which can be located in different LANs. So for instance, referring back to FIG. 1, one router in LAN-0, one router in LAN-1 and one router in LAN-2 can be members of the same VLAN, such as VLAN 20 shown with reference to FIG. 2. Router membership in a VLAN can be managed by a central administrator, and packets transmitted from one VLAN member to another can be tagged according to a network standard such as IEEE 802.1Q. The tag is a field in a packet or frame that includes, among other things, a VLAN Identifier (VID), which is a 12-bit field specifying the VLAN to which the packet or frame belongs. Each switch can include a VLAN table which is a listing of end-Stations or Next Hop Router's MAC address and ports through which the end station or the next-hop router on that VLAN are reachable. So for instance, the Switch-3 in VLAN 20 of FIG. 2 can maintain one VLAN table entry that is comprised of a MAC address assigned to Station-1 and the identity of port 2. Such a VLAN table can include many MAC addresses associated with each of the Stations (or next-hop Routers) in the VLAN 20 and the corresponding ports on each Switch from which the Stations (or next-hop Routers) are reachable.
Packet network devices such as routers or switches can include a chassis with separate cards or modules for the provision of different functions associated with their operation. Such devices can include a control module that operates to provide overall control of the device operation and to provide routing and/or switching protocol functionality, one or more line cards to provide packet processing and forwarding functionality and one or more switching cards to switch packets between the line cards. All of these cards can be connected to a backplane that is arranged in the network device chassis. The router/switch 30 in FIG. 3 includes a control module and a plurality of line cards (only one shown) all connected by a switch fabric (not shown). The control module is comprised of, in this case, two route processing modules L2-RPM and L3-RPM, each of which can operate to perform different functionality in support of the overall system operation. In this case, the L3-RPM is configured with, among other things, layer 3 routing protocols such as the open shortest path first (OSPF) protocol, the address resolution protocol (ARP), the border gateway protocol (BGP) to name a few. The layer 3 routing protocols generally operate to discover network address information about other devices reachable by router 30 and they operate to build and maintain layer 3 routing tables.
Continuing to refer to FIG. 3, the L2-RPM, among other things, runs layer 2 or link layer network protocols such as any one or more of a standard spanning tree protocol (STP, RSTP, MSTP) which generally operate to discover L2 information about network devices reachable from the router 30, to monitor the status of network links connected to the packet network device and to use this information to build switching tables and to create a loop-free topology (spanning tree) within a network of layer-2 routers. The L2-RPM can include a link state database where the state of each link to and from the SWITCH 30 is stored, and it can also include information related to one or more VLANs in a VLAN table. This VLAN table information typically includes, among other things, the VLAN ID (VID) assigned to a particular VLAN, which in this case can be the VLAN 20 of FIG. 2. The router 30 of FIG. 3 also includes one or more line cards that implement packet processing functionality, memory for storing L2/L3 forwarding tables and one or more agents that operate to maintain the forwarding tables stored in line card memory. The packet processing functionality is connected to input/output ports that generally operate to send and receive packets of information over links between the routers in a network. Processes operating on the control module and line cards can communicate with each other over an inter-process communication bus.
From time to time, the communication links between routers fail. When this happens, it is imperative that the routers respond quickly to re-route network traffic to a known good link in order to minimize the loss of data. It is desirable to perform this re-routing of traffic in hardware, as hardware can be designed to operate very quickly to perform the forwarding table updates needed to re-route the network traffic. One way this can be performed in hardware is for a packet processor to examine the MAC address in a layer-3 table associated with a port connect to a failed link, and then use this information as a pointer into a layer-2 table to identify the port over which to send the packet. This works because STP very quickly disables the port connected to the failed link and enables a standby port and makes this change in the layer-2 table. However, due to hardware limitations in some packet network devices, it is only possible to use software to effect the re-routing of network traffic upon the failure of a link.